<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Requests\AdminLoginRequest;
use App\Model\AdminUserModel;
use Validator;

/**
 * [处理后台登录的控制器]
 * @author [w1tao] <[424356452@qq.com]>
 */
class AdminLogin extends Controller
{
    /**
     * [index 后台登录页面]
     * @return [view] [description]
     */
    public function index()
    {

    	return view('Admin.adminUser.admin-login');
    }

    /**
     * [captcha 给视图返回一个验证码图片]
     * @return [text] [返回的是一个html的img标签]
     */
    public function captcha()
    {
        return captcha_src();
    }

    /**
     * [doLogin 处理登录]
     * @param  AdminLoginRequest $request [从表单接收过来的数据]
     * @return [type]                     [如果登录成功，就会重定向到后台首页；如果登录失败，就会重定向回到登录页面并在session闪存中返回错误message]
     */
    public function doLogin(AdminLoginRequest $request)
    {

        $rules = ['captcha' => 'required|captcha'];

        $validator = Validator::make($request->all(), $rules);

        // 验证fails()有值为失败
        if ($validator->fails()) {

            return back()->with('message', '验证码错误');

        }

        //接受数据
       	$name = $request->input('name');
    	$password = $request->input('password');


        //判断用户名是否存在
    	if (empty(AdminUserModel::select()->where('name', $name)->first())) {

    		return back()->with('message', '该用户名不存在！');
    	}

      $res = AdminUserModel::select()->where('name', $name)->first()->toArray();
    	$bool = password_verify($password, $res['password']);

        //判断密码是否正确
    	if(!$bool) {

    		return back()->with('message', '密码错误！');

    	}

        //判断该管理员是否被禁用
        if($res['status'] == 1) {

            return back()->with('message', '该账户已被禁用，请联系管理员！');
        }

        unset($res['password']);

        session(['Adminuser-data' => $res]);
        //登录成功，重定向到后台首页
    	return redirect()->route('Admin.index');
    }

    public function singOut()
    {
        session()->forget('Adminuser-data');

        return redirect()->route('Admin.login');
    }
}
